/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.cs.pojo.impl;

import br.com.cs.dao.jdbc.VisitanteJDBC;
import br.com.cs.exception.DAOException;
import br.com.cs.exception.PojoException;
import br.com.cs.model.Visitante;
import br.com.cs.pojo.VisitantePojo;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Administrador
 */
public class VisitantePojoImpl extends BasePojoFactoryImpl implements VisitantePojo{

    private static VisitantePojoImpl instance = new VisitantePojoImpl();
    
    /**
     * Construtor
     */
    public VisitantePojoImpl() {
    }
    
    /**
     * Recupera a instancia do pojo
     * @return 
     */
    public static VisitantePojoImpl getInstance(){
        return instance;
    }

    @Override
    public void delete(Visitante visitante) throws PojoException {
        try {
            VisitanteJDBC.getInstance().delete(visitante);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: Remover categoria: "+visitante.getNome(), "Remover categoria: "+visitante.getNome()+".", ex);
        }
    }

    @Override
    public List getAll() throws PojoException {
        try {
            return VisitanteJDBC.getInstance().getAll();
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: Recuperar lista de visitantes ", "Recuperar lista de visitantes.", ex);
        }
    }

    @Override
    public Visitante getByPrimaryKey(Integer id) throws PojoException {
        try {
            return VisitanteJDBC.getInstance().getByPrimaryKey(id);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: Recuperar lista de visitantes","Recuperar lista de visitantes.", ex);
        }
    }

    @Override
    public void save(Visitante visitante) throws PojoException {
       // try {
            
    //    }
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public List getByFilter(String filterName, String filterValue) throws PojoException {
        try {
            return VisitanteJDBC.getInstance().getByFilter(filterName, filterValue);
        } catch (DAOException ex) {
            Logger.getLogger(VisitantePojoImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new PojoException("Erro na operação: ", "Recuperar categoria por filtro.", ex);
        }
    }


    
}
